package com.tarena.lbs.business.servcie;

import com.tarena.lbs.base.protocol.exception.BusinessException;
import com.tarena.lbs.base.protocol.pager.PageResult;
import com.tarena.lbs.business.pojo.param.StoreParam;
import com.tarena.lbs.business.pojo.param.UserLocationParam;
import com.tarena.lbs.business.pojo.po.StoreSearchPO;
import com.tarena.lbs.business.pojo.query.AreaStoreQuery;
import com.tarena.lbs.business.pojo.query.StoreQuery;
import com.tarena.lbs.business.pojo.vo.NearStoreVO;
import com.tarena.lbs.business.pojo.vo.StoreVO;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public interface StoreService {

    void save(StoreParam param) throws BusinessException;

    PageResult<StoreVO> pageList(StoreQuery query) throws BusinessException;

    PageResult<StoreVO> getAreaStorePageList(AreaStoreQuery query) throws BusinessException;

    StoreVO getStoreById(Integer storeId);

    void deleteStore(Integer storeId) throws BusinessException;

    List<NearStoreVO> getNearStores(UserLocationParam  param) throws BusinessException;

    void postLocation(UserLocationParam param) throws BusinessException;

    void startOnceWarmup();

    void disableStore(Integer storeId) throws BusinessException;

    void enableStore(Integer storeId) throws BusinessException;
}
